﻿// ===============================================================================
//  Copyright © NewSQL.CN. All rights reserved .
//  技术论坛：http://newsql.cn/
//  个人博客：http://www.ymind.net/
//  版权所有：NewSQL中文社区 彦铭工作室
// ===============================================================================

using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

namespace Newsql.Data
{
	/// <summary>
	/// 定义 MongoDB 实体对象的基本属性和方法。
	/// </summary>
	public interface IDBObject<T> where T : BsonValue
	{
		/// <summary>
		/// 获取实体对象的唯一标识符。
		/// </summary>
		[BsonId]
		T Id { get; }

		/// <summary>
		/// 为实体对象设置新的唯一标识符。
		/// </summary>
		/// <param name="newId">新的唯一标识符。</param>
		void SetId(T newId);
	}
}
